package com.cbd.dao;

import java.util.List;

import com.cbd.pojo.PageBean;
import com.cbd.pojo.Personalcarport;

public interface PersonalcarportDao {

	
	/**
	 * <p>说明：通过包租婆查找该包租婆所有车位</p>
	 * @param ladyId 包租婆ID
	 * @param page bean里有页数
	 * @return PageBean 中包含所有车位的list
	 * @author 罗旭<br>
	 */
	public PageBean findAllPortByLandLadyId(int ladyId,PageBean page);
	
	/**
	 * <p>说明：包租婆增加一个车位</p>
	 * @param personalcarport 
	 * @return int 0：增加失败  1：增加成功
	 * @author 罗旭<br>
	 */
	public int addPort(Personalcarport personalcarport);
	
	
	/**
	 * <p>说明：查找包租婆下面所有可以使用的车位</p>
	 * @param 包租婆的id 
	 * @return List<Personalcarport>返回所有可以使用车位的集合
	 * @author 杨凯<br>
	 */
	public List<Personalcarport> findAllUsablePort(int ladyId);
	
	
	/**
	 * <p>说明：通过包租婆查找所有未审核通过的车位</p>
	 * @param ladyId包租婆的id
	 * @return List<Personalcarport>返回所有没有审核通过的车位
	 * @author 杨凯<br>
	 */
	public List<Personalcarport> findAllNoPassPort(int ladyId);
	
	/**
	 * <p>说明：通过包租婆ID查询她拥有的车位数目</p>
	 * @param ladyId包租婆的id
	 * @return int返回所有车位的数目
	 * @author 杨凯<br>
	 */
	public int findCarPortNum(int ladyId);
	
	/**
	 * <p>说明：通过车位ID删除车位</p>
	 * @param 车位的id
	 * @return void
	 * @author 杨凯<br>
	 */
	public void delCarPortById(int id);
	/**
	 * <p>说明：验证产权证编号是否存在</p>
	 * @param 产权证编号
	 * @return int 如果返回1证明已经存在，否则不存在
	 * @author 杨凯<br>
	 */
	public int checkCarportNO(String carportNO);
	/**
	 * <p>根据产权证编号以及车位的地址验证车位编号是否存在</p>
	 * @param carNO
	 * @param carportAddress
	 * @return 如果返回1证明已经存在，否则不存在
	 */
	public int checkCarNO(String carNO,String carportAddress);
	/**
	 * 查询所有已通过审核并且没被出租的车位
	 * @return
	 */
	public List<Personalcarport> getAllCarPort(int ladyID);
	/**
	 * 通过车位ID将该车位的出租状态改为已出租
	 * @param carPortID
	 */
	public void updateCarPortIsRentById(int carPortID);	
	/**
	 * <p>说明：根据租车开始时间和结束时间来找到满足条件的车位</p>
	 * <p>由于页面上需要显示  得到 车位地址编号 开始时间  结束时间 包租婆用户名 等</p>
	 * @param startTime 开始时间
	 * @param endTime	结束时间
	 * @param userID  用户ID
	 * @return List<Object[]>  
	 * @author 罗旭<br>
	 */
	public List<Object[]> findCarPortsByTimes( String startTime,
				String endTime , int userID);

	/**
	 * <p>创建时间: 2016年11月3日 下午1:35:35.</p>
	 * <p>标题: findAllUnAbelPort.</p>
	 * <p>说明: 查找所有待审车位.</p>
	 * @param @return
	 * @return List<Personalcarport>
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public List<Personalcarport> findAllUnAbelPort();

	/**
	 * <p>创建时间: 2016年11月3日 下午4:20:21.</p>
	 * <p>标题: accept.</p>
	 * <p>说明: 审核包租婆车位.</p>
	 * @param @param parseInt 车位ID 
	 * @return void
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public void accept(int parseInt);

	/**
	 * <p>创建时间: 2016年11月4日 下午1:19:01.</p>
	 * <p>标题: findUnableProtByLadyID.</p>
	 * <p>说明: 分页显示包租婆名下所有未经审核通过的车位.</p>
	 * @param @param pageBean
	 * @param @param parseInt 包租婆的ID
	 * @param @return
	 * @return PageBean
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public PageBean findUnableProtByLadyID(PageBean pageBean, int parseInt);
	/**
	 * <p>创建时间: 2016年11月4日 下午1:23:43.</p>
	 * <p>标题: findAllUnablePortByLadyID.</p>
	 * <p>说明: 查询包租婆名下所有未经审核的车位.</p>
	 * @param @param ladyID 包租婆的ID
	 * @param @return
	 * @return List<Personalcarport>
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public List<Personalcarport> findAllUnablePortByLadyID(int ladyID);
	
	/**
	 * <p>说明：根据租车开始时间和结束时间来找到满足条件的车位</p>
	 * <p>由于页面上需要显示  得到 车位地址编号 开始时间  结束时间 包租婆用户名 等</p>
	 * @param pageSize 每页显示条数
	 * @param currentPage 当前页
	 * @param startTime 开始时间
	 * @param endTime	结束时间
	 * @return List<Object[]>  
	 * @author 罗旭<br>
	 */
	public List<Object[]> findOnePageCarPortByTime(int pageSize,int currentPage,
			String startTime, String endTime , int userID);
	
	/**
	 * @Description: 修改租借状态为0
	 * @param @param carPortID   
	 * @return void  
	 * @throws
	 * @author yangkai 
	 * @date 2016年11月8日
	 */
	public void updateCarPortIsRentFalseById(int carPortID);
	
}
